(delete-horizontal-space, just-one-space): Use `constrain-to-field'
authorMiles Bader <miles@gnu.org>
Fri, 18 May 2001 07:13:04 +0000 (07:13 +0000)
committerMiles Bader <miles@gnu.org>
Fri, 18 May 2001 07:13:04 +0000 (07:13 +0000)
instead of `field-end'/`field-beginning', because it's more efficient
for large files.

lisp/simple.el

index 367bc2465fe600b0e202acd14bbd007911f9ab00..a58f8003bac3e379caf5320d1ff85a876ae07698 100644 (file)
@@ -340,28 +340,31 @@ Leave one space or none, according to the context."
   "Delete all spaces and tabs around point.
 If BACKWARD-ONLY is non-nil, only delete spaces before point."
   (interactive "*")
-  (delete-region
-   (if backward-only
-       (point)
+  (let ((orig-pos (point)))
+    (delete-region
+     (if backward-only
+        orig-pos
+       (progn
+        (skip-chars-forward " \t")
+        (constrain-to-field nil orig-pos t)))
      (progn
-       (skip-chars-forward " \t" (field-end))
-       (point)))
-   (progn
-     (skip-chars-backward " \t" (field-beginning nil t))
-     (point))))
+       (skip-chars-backward " \t")
+       (constrain-to-field nil orig-pos)))))
 
 (defun just-one-space ()
   "Delete all spaces and tabs around point, leaving one space."
   (interactive "*")
-  (skip-chars-backward " \t" (field-beginning))
-  (if (= (following-char) ? )
-      (forward-char 1)
-    (insert ? ))
-  (delete-region
-   (point)
-   (progn
-     (skip-chars-forward " \t" (field-end nil t))
-     (point))))
+  (let ((orig-pos (point)))
+    (skip-chars-backward " \t")
+    (constrain-to-field nil orig-pos)
+    (if (= (following-char) ? )
+       (forward-char 1)
+      (insert ? ))
+    (delete-region
+     (point)
+     (progn
+       (skip-chars-forward " \t")
+       (constrain-to-field nil orig-pos t)))))
 
 (defun beginning-of-buffer (&optional arg)
   "Move point to the beginning of the buffer; leave mark at previous position.